#include <iostream>
#include <fstream>
#include <math.h>

using namespace std;

int main()
{
    ifstream archivo;
    ofstream porlas;
    porlas.open("datos.bak.txt");
    archivo.open("datos.txt");
    int matriz[20][20];

    for (int i = 0;i < 20; i++)
    {
        for (int j = 0;j < 20; j++)
        {
            archivo >> matriz[i][j];
            porlas << matriz[i][j] << ' ';

        }
        porlas << endl;
    }
    long int solT = 0;
    long int sol;

    for (int i = 0;i < 20; i++)
    {
        for (int j = 0;j < 17; j++)
        {
            sol =    matriz[i][j] * matriz[i][j+1] *matriz[i][j+2] *matriz[i][j+3];
            porlas << endl << sol;
            if (sol > solT) solT = sol;
        }
    }

    for (int i = 0;i < 17; i++)
    {
        for (int j = 0;j < 20; j++)
        {
            sol =    matriz[i][j] * matriz[i+1][j] *matriz[i+2][j] *matriz[i+3][j] ;
            porlas << endl << sol;
            if (sol > solT) solT = sol;
        }
    }

    for (int i = 0;i < 17; i++)
    {
        for (int j = 0;j < 17; j++)
        {
            sol =    matriz[i][j] * matriz[i+1][j+1] *matriz[i+2][j+2] *matriz[i+3][j+3];
            porlas << endl << sol;
            if (sol > solT) solT = sol;
        }
    }

    for (int i = 0;i < 17; i++)
    {
        for (int j = 3;j < 20; j++)
        {
            sol =    matriz[i][j] * matriz[i+1][j-1] *matriz[i+2][j-2] *matriz[i+3][j-3];
            porlas << endl << sol;
            if (sol > solT) solT = sol;
        }
    }



    cout << solT;
    porlas <<endl<<endl<<endl<< solT;
    archivo.close();
    porlas.close();
    return 0;
}
